فرمان find یکی از قدرتمندترین ابزارهای لینوکس برای
جستجوی فایلها و دایرکتوریها است. با استفاده از find میتوانید
بر اساس نام، نوع، اندازه، زمان تغییر، مجوزها و بسیاری معیارهای دیگر جستجو کنید.
. یا /home)-name، -type)-print، -exec)
توضیح: فایلهای file.txt را در دایرکتوری جاری و زیردایرکتوریها پیدا میکند.
-name به حروف بزرگ و کوچک حساس است.
یعنی file.txt با File.txt فرق دارد.
توضیح: فایلهای file.txt، File.TXT، FILE.TXT و ... را پیدا میکند.
توضیح: همه فایلهایی که به .txt ختم میشوند را پیدا میکند.
توضیح: همه فایلهای .conf را در دایرکتوری /home و زیردایرکتوریهای آن پیدا میکند.
| گزینه | توضیح |
|---|---|
-type f |
فقط فایلهای معمولی (Regular Files) |
-type d |
فقط دایرکتوریها |
-type l |
فقط لینکهای سمبلیک (Symbolic Links) |
-type b |
فایلهای بلاک (Block Devices) |
-type c |
فایلهای کاراکتری (Character Devices) |
توضیح: دایرکتوریهای Downloads را در دایرکتوری جاری پیدا میکند.
| گزینه | توضیح | مثال |
|---|---|---|
-size +N |
بزرگتر از N | -size +100M |
-size -N |
کوچکتر از N | -size -10k |
-size N |
دقیقاً N | -size 1M |
توضیح: فایلهای بزرگتر از ۱۰۰ مگابایت را در کل سیستم پیدا میکند.
توضیح: فایلهای کوچکتر از ۱ مگابایت را در دایرکتوری جاری پیدا میکند.
| گزینه | توضیح |
|---|---|
-mtime -N |
تغییر یافته در کمتر از N روز قبل |
-mtime +N |
تغییر یافته در بیشتر از N روز قبل |
-mtime N |
تغییر یافته دقیقاً N روز قبل |
-amin -N |
دسترسی در کمتر از N دقیقه قبل (Access) |
-cmin -N |
تغییر در کمتر از N دقیقه قبل (Change) |
توضیح: فایلهایی که در ۷ روز اخیر تغییر کردهاند.
توضیح: فایلهایی که بیش از ۳۰ روز از تغییر آنها میگذرد.
توضیح: همه فایلهای .tmp را پیدا کرده و حذف میکند.
{} → جایگزین نام فایل میشود\; → پایان دستور -exec (نقطهویرگول)+ به جای \; استفاده کنید: find . -name "*.txt" -exec ls -l {} +
توضیح: فایلهای .tmp را مستقیم حذف میکند.
برای اجرای دستورات پیچیدهتر، find را با xargs ترکیب کنید:
توضیح: حذف فایلهای لاگ با استفاده از xargs.
پیدا کردن فایلهای لاگ قدیمیتر از ۳۰ روز در /var/log.
پیدا کردن فایلهایی با مجوزهای ۷۷۷ (همهکاره).
پیدا کردن فایلهای .txt فقط تا ۲ سطح عمق.
.pdf را در دایرکتوری /home پیدا کنید.-empty پیدا کنید..tmp را با -exec حذف کنید.| مفهوم | دستور |
|---|---|
| جستجو با نام دقیق | find . -name "file.txt" |
| جستجو بدون حساسیت به حروف | find . -iname "file.txt" |
| جستجو با الگو | find . -name "*.txt" |
| فقط فایلها | find . -type f |
| فقط دایرکتوریها | find . -type d |
| بر اساس اندازه | find . -size +100M |
| بر اساس زمان تغییر | find . -mtime -7 |
| اجرای دستور روی فایلها | find . -name "*.txt" -exec ls -l {} \; |
| حذف فایلها | find . -name "*.tmp" -delete |
| جستجو با عمق محدود | find . -maxdepth 2 -name "*.txt" |